An entity, such as a business or government agency, will often have multiple locations to serve a large area. The multiple locations generally are scattered throughout various regions of the area of service, so that customers may conveniently seek the service within the customer's geographic area. Also, when the service is to provide service or to deliver and/or pick up goods at the customer's location, the entity may minimize response time if the entity has a location within a customer's geographic area. For example, this is especially true for a franchised pizza delivery business or emergency agencies such as fire and ambulance services.
While it is convenient and efficient for an entity to have multiple locations in various regions of the entity's area of service, it is likewise convenient and efficient for the entity to have a single advertised directory number that is applicable to all of the multiple entity locations within the entity's area of service. Having a single advertised number for an entity helps to eliminate the expenses which would otherwise be associated with advertising the different locations individually with a different phone number for each of the locations. Additionally, advertising a single number can make it easier for a caller to remember the service provider's phone number.
Solutions to this problem have been addressed whereby businesses obtain an 800 telephone number which is used as the single business number and callers of the 800 telephone number are routed to a dealer based upon the NPA-NXX of the calling party's number, NPA-NXX-XXXX, (where NPA is the calling party's area code, NXX is the central office code and XXXX identifies a particular station in the central office code). U.S. Pat. No. 4,757,267 to Riskin discloses a system in which a call is routed to a nearby dealer based upon the coordinates of the central office (NPA-NXX) serving the dealer. The system first receives a call from a caller then outdials to a dealer, and crossconnects the incoming call to the outgoing call if the dealer is available. The system monitors both lines during this process. This process can be both inefficient and uneconomical.
U.S. Pat. No. 5,136,636 to Wegrzynowicz discloses a method of routing a call in which a primary database is accessed using the caller's NPA and 800 directory number to provide an access key which identifies the customer. Wegrzynowicz generally relates to a method for selecting a local dealer out of a large group of dealers for completion of an 800 number. The caller is first connected to a toll switching system which sends a query to a first database using the 800 number and the caller's numbering plan area (NPA) code. The first database responds with a routing number which is used to select one of a plurality of second databases for serving one customer. After selecting one of the plurality of databases, the routing number and caller's NPA plus office code (NXX) are used to access the second database and to obtain the telephone number of a local dealer. The telephone number is returned to the toll system for completing the call. Therefore, Wpgrzynowicz solves the problem of handling large amounts of data by providing multiple data bases for serving each customer. If one customer of Wegrzynowicz serves more than one area code (NPA) area then multiple databases must be created.
While each of these patents disclose a method of routing a call to a business location based on the caller's NPA-NXX, neither discloses a method for accomplishing routing on a sufficiently granular basis when a business has multiple locations within the area (NXX) served by a central office. With NPA-NXX routing, a multiple location business within an area served by an NPA-NXX (central office) is not sufficiently able to distinguish and therefore route calls to the most appropriate location.
Many current mechanisms and databases used to process calls are limited. For example, AT&T provides an advanced intelligent network platform with databases and mechanisms for storing and accessing data. With the AT&T network platform, telephone companies may develop service package applications with recent/change and decision graph mechanisms which store subscription data that is pertinent to multiple subscribers for specific services. With recent/change and decision graph mechanisms, multiple parameters or fields of information may be evaluated to determine how a call should be handled or to which subscriber the call should be directed. The recent change and decision graph data is stored in memory, thus this data can be accessed at memory speed. However, AT&T's A-I-Net platform imposes significant limitations on the amount of data that can be stored in recent/change and decision graphs.
By contrast, commercial relational databases such as ORACLE, SYBASE, and INFORMIX allow storage for large amounts of data. Relational databases, in general, are very flexible. The basic data structure in a relational database is a "relation or table." These databases allow multiple fields of input to be used as a key to retrieve the related attributes. However these databases also have a drawback, i.e., they do not support high transaction throughputs to allow efficient call processing.
The AT&T A-I-Net platform provides a mechanism to store large quantities of data in real-time databases. The data contained within these databases may be accessed during real-time processing. Real-time databases offer high transaction throughput to facilitate real-time call processing. Even higher transaction throughputs are possible by utilizing cacheing mechanisms. Cacheing mechanisms allow the whole/or part of a specific real-time database to be stored in memory for faster access. AT&T's A-I-Net platform allows such a feature to be used in conjunction with the real-time databases. The real-time databases currently available on A-I-Net platform may be accessed with only a single key which is usually a directory number (DN) to query the database to obtain the relevant data (i.e., one field of information is input to obtain single/multiple fields(s)). Thus, a separate database would normally be constructed or maintained for each subscriber to the service. Providing a separate database for translating the geographic area information for each subscriber can be costly.
In summary of the data handling devices, the recent change and decision graph mechanisms can support and exceed the throughput requirements, but cannot handle large amounts of data. Relational databases allow storage of large amounts of data but cannot meet throughput requirements. Real-time databases can store large amounts of data, can meet throughput requirements but are constrained in that they only support a single field of input as a key.
Thus, there is a need in the art for a call routing system that provides flexible routing options operative to route calls when a large quantity of relational data is used and to minimize the amount of data accessed and stored to yield a call routing determination.